def generater(num):
    for i in range(num):
        print("开始")
        yield i
        print("生成完成")


g = generater(5)
print(next(g))
print(next(g))
print(next(g))
# print(next(g))
# print(next(g))
# print(next(g))
# for i in g:
#     print(i)

"""
小结：
yield 关键字:
只要在def函数⾥⾯看到有 yield 关键字那么就是⽣成器
代码说明:
代码执⾏到 yield 会暂停，然后把结果返回出去，下次启动⽣成器会在暂停的位置继续往下执⾏
⽣成器如果把数据⽣成完成，再次获取⽣成器中的下⼀个数据会抛出⼀个StopIteration 异常，表示停⽌迭代异常
while 循环内部没有处理异常操作，需要⼿动添加处理异常操作
for 循环内部⾃动处理了停⽌迭代异常，使⽤起来更加⽅便，推荐⼤家使⽤。
"""